package com.study.创造型模式.单例模式.静态内部类;

public class Singleton7 {

    public static void main(String[] args) {
        System.out.println("使用静态内部类单例模式");
        Singleton instance = Singleton.getInstance();
        Singleton instance2 = Singleton.getInstance();
        System.out.println(instance == instance2);
    }
}


//静态内部类 完成  推荐使用
class Singleton {
    //构造器私有化
    private Singleton() {
    }

    //写一个静态内部类，该类中又一个静态属性
    private static class SingletonInstance{   //JVM在装载类的时候，线程是安全的
        private static final Singleton INSTANCE = new Singleton();
    }

    //提供一个静态公有方法，直接返回SingletonInstance.INSTANCE
    public static Singleton getInstance(){
        return SingletonInstance.INSTANCE;
    }
}
